import type { PageParam, PageResult } from '@vben/request';

import { requestClient } from '#/api/request';

export namespace FileAppApi {
  /** 应用文件分类授权信息 */
  export interface FileApp {
    id?: number;
    appId?: number; // 应用id
    clientId?: string; // 客户端编号
    appName?: string; // 应用名称
    fileCategoriesId?: number; // 文件分类id
    readEnabled?: number; // 是否可读（下载）
    writeEnabled?: number; // 是否可写（上传）
    status: number; // 状态（0正常 1停用）
  }
}

/** 查询应用文件分类授权分页 */
export function getFileAppPage(
  data: PageParam,
  desensitize: boolean,
  encrypt: boolean,
) {
  return requestClient.post<PageResult<FileAppApi.FileApp>>(
    '/infra/file-app/page',
    data,
    {
      desensitize,
      encrypt,
    },
  );
}

/** 查询应用文件分类授权详情 */
export function getFileApp(id: number) {
  return requestClient.get<FileAppApi.FileApp>(`/infra/file-app/get?id=${id}`);
}

/** 新增应用文件分类授权 */
export function createFileApp(data: FileAppApi.FileApp) {
  return requestClient.post('/infra/file-app/create', data);
}

/** 批量新增应用文件分类授权 */
export function createFileAppList(data: FileAppApi.FileApp) {
  return requestClient.post('/infra/file-app/create-list', data);
}
/** 修改应用文件分类授权 */
export function updateFileApp(data: FileAppApi.FileApp) {
  return requestClient.put('/infra/file-app/update', data);
}

/** 删除应用文件分类授权 */
export function deleteFileApp(id: number) {
  return requestClient.delete(`/infra/file-app/delete?id=${id}`);
}

/** 批量删除应用文件分类授权 */
export function deleteFileAppList(ids: number[]) {
  return requestClient.delete(
    `/infra/file-app/delete-list?ids=${ids.join(',')}`,
  );
}

/** 导出应用文件分类授权 */
export function exportFileApp(params: any) {
  return requestClient.download('/infra/file-app/export-excel', { params });
}

/** 根据条件文件分类授权列表 */
export async function getFileAppList(params: any) {
  return requestClient.post('/infra/file-app/simple-list', params);
}
